import java.util.*;

/**
 * @author LKQ
 * @date 2022/3/20 8:45
 * @description 竞赛第二题，贪心思想：添加的是 pattern[0] = front 或 pattern[1] = back，最好情况为，字符串前面添加 front
 * 或者 后面添加 back 才能使 目标子序列更多。
 * 那么1.添加一个front 目标子序列 = 初始子序列 + back的数量；
 * 2. 添加一个back 目标子序列 = 初始子序列 + front的数量；
 */
public class Solution {
    public static void main(String[] args) {

    }

    public long maximumSubsequenceCount(String text, String pattern) {
        char front = pattern.charAt(0), back = pattern.charAt(1);
        long sum = 0;
        int fCnt = 0, bCnt = 0;
        // 从后往前遍历
        for (int i = text.length() - 1; i >= 0; i--) {
            char ch = text.charAt(i);
            if (ch == front) {
                sum += bCnt;
                fCnt++;
            }
            if (ch == back) {
                bCnt++;
            }
        }
        // 初始子序列数量 + '首字母' 或 '尾字母'的最多值
        return sum + Math.max(bCnt, fCnt);
    }
}
